package com.aliwo.recursion;

/**
 * @author xuyayuan
 * @description 递归学习
 * 递归的应用场景：
 *  一：问题的定义是按递归定义的(阶乘)
 *  二：问题的解法是递归的(汉诺塔问题)
 *  三：数据结构是递归的(链表，树的遍历，树的深度)
 * 递归三要素：
 *  一：明确递归终止条件
 *  二：给出递归终止时的处理方法
 *  三：提取重复的逻辑，缩小问题规模
 *
 * 递去与归来
 * @date 2021/9/7 9:17
 */
public class RecursionDemo {

    public static void recursion(int time) {
        if (time == 0) {
            return;
        } else {
            System.out.println("递归前 time:" + time);
            recursion(time - 1);
            System.out.println("递归后 time:" + time);
        }
    }

    public static void main(String[] args) {
        recursion(5);
    }
}
